package com.javacoo.xservice.base.support.handler;
/**
 * 处理器链组件
 * <p>说明:</p>
 * <li></li>
 * @author DuanYong
 * @since 2017年7月11日下午1:40:27
 */
public interface HandlerStack {
	/**
	 * 顺序执行处理链中的每个Handler前置處理
	 * <p>说明:</p>
	 * <li></li>
	 * @author DuanYong
	 * @param context  处理链执行的上下文参数。通常是数据交换区或其它该链中Handler所约定的数据类型
	 * @since 2017年7月11日下午1:41:16
	 */
	void doPreStack(Object context);
	/**
	 * 顺序执行处理链中的每个Handler后置處理
	 * <p>说明:</p>
	 * <li></li>
	 * @author DuanYong
	 * @param context 处理链执行的上下文参数。通常是数据交换区或其它该链中Handler所约定的数据类型
	 * @since 2017年7月11日下午5:21:52
	 */
	void doAfterStack(Object context);
	/**
	 * 新增处理器
	 * <p>说明:</p>
	 * <li></li>
	 * @author DuanYong
	 * @param handler
	 * @since 2017年7月11日下午1:42:25
	 */
	void addHandler(Handler handler);
}
